640 IF PEEK(222) = 6 THEN PRINT "TABLE/PROGRAM ISN'T ON THIS DISK.": PRINT "INSERT CORRECT DISK. (PUSH <RETURN>) ";: GET Z$: GOTO 400
650 GOTO 900
660 REM -GET NUMBER OF SHAPES IN TABLE-
670 SNUM = PEEK(2049)
680 IF LOC = 1 THEN GOTO 300
690 GOTO 340
700 :
710 REM ******* MULTI-LETTER INPUT ROUTINE ****
720 :
730 W$ = ""
740 GET Z$
750 IF Z$ = CHR$(13) THEN RETURN
760 IF Z$ = CHR$(8) THEN 790
770 IF LEN(W$) = LMT THEN 740
780 PRINT Z$;:W$ = W$ +Z$: GOTO 740
790 IF LEN(W$) = 0 THEN 740
800 PRINT CHR$(8);: PRINT " ";: PRINT CHR$(8);
810 IF LEN(W$) = 1 THEN 730
820 W$ = LEFT$(W$, LEN(W$) -1): GOTO 740
900 :
910 REM ******* UNUSUAL DISK ERRORS ***********
920 :
930 PRINT "A SYSTEM ERROR #"; PEEK(222);" HAS OCCURRED"
940 PRINT "LINE #"; PEEK(218) + PEEK(219) *256
950 POKE 216,0: END
1000 :
1010 REM *********** MAIN LOOP *****************
1020 :
1030 XDRAW NN AT XC,YC
1040 REM -CHECK FOR KEYPRESS-
1050 K = PEEK( -16384): POKE -16368,0
1060 XDRAW NN AT XC,YC
1070 IF K <128 THEN K$ = "": GOTO 1340
1080 K$ = CHR$(K -128)
1090 REM -BRANCH TO FUNCTIONS-
1100 IF ASC(K$) > = ASC("0") AND ASC(K$) < = ASC("9") THEN 1900
1110 IF NUM$ < >"" THEN NUM$ = "": VTAB 22: HTAB 37: PRINT " ";: HTAB 37: PRINT NN
1120 IF K$ = "C" THEN 2000
1125 IF K$ = "O" THEN GET K$: GOTO 1120
1130 IF K$ = "R" THEN 2100
1140 IF K$ = CHR$(18) THEN 2150
1150 IF K$ = "S" THEN 2200
1160 IF K$ = CHR$(19) THEN 2250
1170 IF K$ = "N" THEN 2300
1180 IF K$ = CHR$(14) THEN 2350
1190 IF K$ = "D" THEN DRAW NN AT XC,YC: GOTO 1000
1200 IF K$ = "X" THEN X = PEEK(8192):IX% = INT(X/128):X = X -(128 *IX%):X% = INT(X/42):X = X% +(4 *IX%): HCOLOR= X: DRAW NN AT XC,YC: HCOLOR= CC: GOTO 1000
1210 IF K$ = "F" THEN 2400
1220 IF K$ = "T" THEN 2500
1230 IF K$ = "A" THEN 2700
1240 IF K$ = CHR$(20) THEN LOC = 2: GOTO 400
1250 IF K$ = "P" THEN 2800
1260 IF K$ = "G" THEN 3000
1270 IF K$ = "V" THEN 3200
1280 IF K$ = CHR$(5) THEN HPLOT 0,0: CALL 62454: GOTO 1000
1290 IF K$ = CHR$(27) THEN TEXT : HOME : POKE 103,1: POKE 104,8: POKE 105,24: POKE 106,8: END
1300 IF K$ = CHR$(4) THEN 3400
1310 IF K$ = "?" THEN GOSUB 5000: POKE -16304,0: GOTO 340
1320 REM -ADD FUNCTION BRANCH HERE-
1330 REM -ADD FUNCTION BRANCH HERE-
1340 REM -MOVING OF SHAPE-
1345 YN = YC:XN = XC
1350 IF ACT = 1 THEN 1450
1355 XN = XC:YN = YC
1360 IF K$ = "I" THEN YC = YC -1: IF YC <0 THEN YC = 191
1370 IF K$ = "J" THEN XC = XC -1: IF XC <0 THEN XC = 279
1380 IF K$ = "K" THEN XC = XC +1: IF XC >279 THEN XC = 0
1390 IF K$ = "M" THEN YC = YC +1: IF YC >191 THEN YC = 0
1400 IF K$ = CHR$(9) THEN YC = YC -FAST: IF YC <0 THEN YC = YC +191
1410 IF K$ = CHR$(10) THEN XC = XC -FAST: IF XC <0 THEN XC = XC +279
1420 IF K$ = CHR$(11) THEN XC = XC +FAST: IF XC >279 THEN XC = XC -279
1430 IF K$ = CHR$(13) THEN YC = YC +FAST: IF YC >191 THEN YC = YC -191
1435 IF YN = YC AND XN = XC THEN GOTO 1000
1440 HTAB 1: VTAB 23: GOTO 370
1450 XC = INT( PDL(0) *1.095)
1460 FOR D = 1 TO 5: NEXT D
1470 YC = INT( PDL(1)/1.34)
1480 REM -IS BUTTON BEING PRESSED?-
1490 IF PEEK( -16287) >127 OR PEEK( -16286) >127 THEN DRAW NN AT XC,YC
1495 IF YN = YC AND XN = XC THEN GOTO 1000
1500 HTAB 1: VTAB 23: GOTO 370
1900 :
1910 REM ******* SELECTION OF SHAPE NUMBER ******
1920 :
1930 NUM$ = NUM$ +K$
1940 IF LEN(NUM$) = 1 THEN VTAB 22: HTAB 37: PRINT "---"
1950 VTAB 22: HTAB 37: PRINT NUM$
1960 IF LEN(NUM$) <3 THEN 1000
1970 T = VAL(NUM$):NUM$ = ""
1980 IF T <1 OR T >SNUM THEN HTAB 1: VTAB 22: GOTO 360
1990 NN = T: HTAB 1: VTAB 22: GOTO 360
2000 :
2010 REM ******* INCREMENT COLOR ***************
2020 :
2030 CC = CC +1: IF CC >7 THEN CC = 0
2040 HCOLOR= CC: HTAB 1: VTAB 22: GOTO 360
2100 :
2110 REM ****** INCREMENT ROTATION *************
2120 :
2130 RR = RR +1: IF RR >63 THEN RR = 0
2140 ROT= RR: HTAB 1: VTAB 22: GOTO 360
2150 :
2160 REM ******* DECREMENT ROTATION ************
2170 :
2180 RR = RR -1: IF RR <0 THEN RR = 63
2190 ROT= RR: HTAB 1: VTAB 22: GOTO 360
2200 :
2210 REM ******* INCREMENT SCALE ***************
2220 :
2230 SS = SS +1: IF SS >255 THEN SS = 1
2240 SCALE= SS: HTAB 1: VTAB 22: GOTO 360
2250 :
2260 REM ******* DECREMENT SCALE ***************
2270 :
2280 SS = SS -1: IF SS <1 THEN SS = 1
2290 SCALE= SS: HTAB 1: VTAB 22: GOTO 360
2300 :
2310 REM ****** INCREMENT SHAPE NUMBER *********
2320 :
2330 NN = NN +1: IF NN >SNUM THEN NN = 1
2340 HTAB 1: VTAB 22: GOTO 360
2350 :
2360 REM ****** DECREMENT SHAPE NUMBER *********
2370 :
2380 NN = NN -1: IF NN <1 THEN NN = SNUM
2390 HTAB 1: VTAB 22: GOTO 360
2400 :
2410 REM ****** FULL SCREEN/MIXED SCREEN *******
2420 :
2430 SCREEN = NOT (SCREEN)
2440 IF SCREEN = 0 THEN POKE -16301,0
2450 IF SCREEN = 1 THEN POKE -16302,0
2460 GOTO 1000
2500 :
2510 REM ****** USER TABLE/PROGRAM TABLE *******
2520 :
2530 IF TABLE = 1 AND UN$ = "" THEN LOC = 2: GOTO 400
2540 IF TABLE = 2 AND UN$ = "" THEN TABLE = 1: GOTO 2560
2550 TABLE = NOT (TABLE)
2560 VTAB 22: PRINT : ONERR GOTO 2630
2570 IF TABLE = 0 THEN PRINT D$;"BLOAD TABLE/";UN$;",A$801"
2580 IF TABLE = 1 THEN PRINT D$;"BLOAD TABLE/PROGRAM,A$801"